home *** CD-ROM | disk | FTP | other *** search
- {
- SEAN PALMER
-
- these routines change formats 'in place' without changing the number of
- bytes, ever, so you can safely use $V-
- }
-
- unit asciiz; {routines for converting strings to asciiz and back}
-
- interface
-
- procedure asciiz2string(var a : string);
- procedure string2asciiz(var s : string);
-
- implementation
-
- {note: any asciiz must be length 255 or less}
-
- procedure asciiz2string(var a : string); assembler;
- asm
- push ds
- cld
- lds si, a
- mov cx, 0
- @L:
- xchg al, byte ptr[si]
- inc si
- or al, al
- jnz @L
- mov ax, si
- mov si, word ptr a
- sub ax, si {calc length}
- dec ax
- mov [si], al
- pop ds
- end;
-
- procedure string2asciiz(var s : string); assembler;
- asm
- push ds
- lds si, s
- les di, s
- lodsb
- mov cl, al
- xor ch, ch
- cld
- rep movsb
- xor al, al
- stosb
- pop ds
- end;
-
- end.
-